#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>

typedef int STDataType;
typedef struct ListNode{
	struct ListNode* next;
	struct ListNode* prev;
	STDataType data;
}ListNode;
//void ListInit(ListNode** pphead);
ListNode* ListInit();
ListNode* BuyListNode(STDataType x);
void ListPrint(ListNode* phead);
void ListPushBack(ListNode* phead,STDataType x);
void ListPopBack(ListNode* phead);
void ListPushFront(ListNode* phead, STDataType x);
void ListPopFront(ListNode* phead);
ListNode* ListFind(ListNode* phead, STDataType x);
void ListInsert(ListNode* pos, STDataType x);
void ListErase(ListNode* pos);
void ListDestory(ListNode** pphead);
void ListClear(ListNode* phead);